package com.fenghongzhang.day005;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;


public class Main2Activity extends AppCompatActivity {

    Handler handler =  new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
//        handler.sendMessage(?)


        /**
         * listView 上下
         */
    }
}


/**
 * 线程本来没有主次之分.
 *
 * 卡  卡顿
 *
 * ui 1秒卡, 2秒  5秒
 *
 *
 * 主线 ->  子线  -> handler
 *
 * AsyncTask -> 封装了handler
 *
 *
 */

/**
 * 1,子线程的参数
 * 2,onProgressUpdate的参数
 * 3, 1) 子线程的返回值
 *    2) 主线onPostExecute的参数
 */
class MyTask extends AsyncTask<String,Void,String>{

    @Override
    protected String doInBackground(String... strings) {
        //执行与ui无关的操作
        /**
         * 1,网络请求.
         * 2,耗时操作
         */
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
    }
}

class MyTask1 extends AsyncTask<Integer,Void,String>{


    @Override
    protected String doInBackground(Integer... integers) {
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }
}


class MyTask2 extends AsyncTask<Integer,Integer,Integer>{


    @Override
    protected void onProgressUpdate(Integer... values) {
        super.onProgressUpdate(values);
    }

    @Override
    protected Integer doInBackground(Integer... integers) {
        return null;
    }

    @Override
    protected void onPostExecute(Integer integer) {
        super.onPostExecute(integer);
    }
}


/**
 * 现在字符串
 */
class MyTask4  extends AsyncTask<String,Void,String>{


    @Override
    protected String doInBackground(String... strings) {
        //执行下载的url操作

        //返回你下载完成的字符串
        return null;
    }

    /**
     *
     * @param s 下载完成的字符串
     */
    @Override
    protected void onPostExecute(String s) {
        //可以直接更新ui
        super.onPostExecute(s);
    }
}



//下载图片
class MyTask5  extends AsyncTask<String,Integer, Bitmap>{


    //第一个被执行
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected Bitmap doInBackground(String... strings) {

        //返回一个图片
        //进度值/ 总值
        publishProgress(20);
        return null;
    }

    @Override
    protected void onPostExecute(Bitmap bitmap) {
        //更新ui
        super.onPostExecute(bitmap);
    }

    //通过
    @Override
    protected void onProgressUpdate(Integer... values) {
        super.onProgressUpdate(values);
        //更新ui
    }
}






























